package LianBiao;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class lianBiaoListTest {
    /**
     * 链表（链式存储方式） int型的教程
     * @param args
     */
//    public static void main(String[] args) {
//
//    }
//}
    public static void main(String[] args) {
        File file=new File("txts/email.txt");
        lianBiaoList list=new lianBiaoList();
        try {
            FileReader fr=new FileReader(file);
            BufferedReader br=new BufferedReader(fr);
            String s=null;
            long start=System.currentTimeMillis();
            while ((s= br.readLine())!=null){
                System.out.println(s);
//                list.insert(s);//按行添加到链表
            }
            long end =System.currentTimeMillis();

            br.close();
            fr.close();
            lianBiaoList.Iter it=list.iterator();
            while (it.hasNext()){
//                s=it.next();
                System.out.println(s);
            }




        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

/**理解为 一条链子 ；单向链表只能从一边抽链子；双向链表从两个方向抽链子
 * 链式存储特征
 * 1.以节点方式存储，节点中包含存储数据和相邻节点的位置
 * 2.相邻节点逻辑上必须相邻，物理上可以不相邻
 * 3.不能过随机访问节点，只能从指定方向一次访问
 * 4.一般采用动态分配内存方式存储
 * 链表：
 * 链式存储构成的线性表，分为单向链表，双向链表两大类。   /**访问方向不同    横排理解为双向列表（能看到第一个和最后一个） 竖排理解为单向列表
 * 线性表：
 * 任意节点只有一个直接前去和直接后继（树和图都不是线性表）    /**之前是一个节点 ， 之后也是一个节点
 * 线性表，栈，队列，数组
 * 链表与数组的区别
 * （1）数据定义
 * 数组不需要定义节点类
 * 链表需要定义节点类和头节点的引用，节点类包含存储数据和下一节点引用两部分
 * （2）存储结构
 * 数组只需要连续分配 一块 存储空间即可，所有存储空间都用来存数据，存储效率高。
 * 链表按节点（节点没有物理上的相邻关系所以只能按照一个方向的起始一个个访问）分配内存，系欸但之间没有必然的物理相邻关系，完全靠节点中的节点引用变量访问相邻节点，存储效率低
 * （3）访问方法
 * 数组可以随机访问任一元素
 * 链表只能按照规定方向依次访问
 */
    /**
     * 链表基本操作
     * 定义Node类 和 Node head 链表头指针 节点v next=null
     */

